package demo1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * 使用Spring 容器来管理项目中要使用的所有类
 * 我们将创建，初始化等操作的控制权交给Spring容器来管理称为控制反转（IoC）
 */
public class Demo {
    public static void main(String[] args) {
        //1. 创建对象
        User user = new User();
        user.sayHello();


        //2. 反射创建对象
        try {
            Class c=Class.forName("demo1.User");
            User ob=(User) c.newInstance();
            ob.sayHello();
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (InstantiationException e) {
            throw new RuntimeException(e);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }


        //3. 使用Spring容器来管理对象

        //指定Spring 框架扫描的包
        AnnotationConfigApplicationContext context=
                new AnnotationConfigApplicationContext("demo1");
        User user2=context.getBean(User.class);
        user2.sayHello();

    }
}
